// Copyright 2008 Senary
// See credits.txt for details.

// This file is part of Omega VII.

// Omega VII is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// Omega VII is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with Omega VII.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

#include "Vector.h"

// This file has been created to solve all those magic number problems
// in our project. Please add all those constants that don't belong
// anywhere else.

// Get M_PI and co.
#define _USE_MATH_DEFINES
#include <cmath>

// constants for unit conversion
// time
const double TICK_IN_SECONDS = 0.0625;
const double YEAR_IN_SECONDS = 3600; // 1 hour
const double DAY_IN_SECONDS = YEAR_IN_SECONDS / 365.2524;
const double WEEK_IN_SECONDS = DAY_IN_SECONDS * 7.0;
const double MONTH_IN_SECONDS = DAY_IN_SECONDS * 30.0;

// distances
// The size of the universe is 5120 quants... this should be about 60 AU
const Vector UNIVERSE_SIZE(5120.0, 5120.0, 5120.0);
const Vector UNIVERSE_CENTER(0.0, 0.0, 0.0);
const double AU_IN_QUANTS = UNIVERSE_SIZE.x / 60.0;

// size of planets
const double RADIUS_PER_POPULATION = 0.02;
const double ORBIT_HEIGHT = 15.0;

// Tuning factors
const double SHIP_ACCEL_TUNING = 300.0;
const double SHIP_VELOCITY_TUNING = 30.0;

// How much to zoom for one notch of the mouse wheel?
const int MOUSE_WHEEL_ZOOM_AMOUNT = 10;